
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>原生js实现3维图片里外转动放大缩小特效</title>
</head>

<body>
<div style="width:980px; margin:50px auto;">

<style type="text/css">


	.spanSlide {
		position: absolute;

		overflow: hidden;
	}
	.imgSlide {
		position: absolute;
		left: 5%;
		top: 5%;
		width: 90%;
		height: 90%;
		overflow: hidden;
	}
	.txtSlide {
		position: absolute;
		top: 5%;
		left: 50px;
		width:100%;
		color:#FFF;
		font-family: arial, helvetica, verdana, sans-serif;
		font-weight: bold;
		font-size:96px;
		letter-spacing:12px;
		filter: alpha(opacity=50);
		-moz-opacity:0.7;
		opacity:0.7;
	}
</style>

<script type="text/javascript">

var ym=0;
var ny=0;

createElement = function(container, type, param){
	o=document.createElement(type);
	for(var i in param)o[i]=param[i];
	container.appendChild(o);
	return o;
}

mooz = {
	O:[],
	/////////
	mult:6,
	nbI:5,
	/////////
	rwh:0,
	imgsrc:0,
	W:0,
	H:0,

	Xoom:function(N){
		this.o = createElement(document.getElementById("screen"), "span", {
			'className':'spanSlide'
		});
		img = createElement(this.o, "img", {
			'className':"imgSlide",
			'src':mooz.imgsrc[N%mooz.imgsrc.length].src
		});
		spa = createElement(this.o, "span", {
			'className':"imgSlide"
		});
		txt = createElement(spa, "span", {
			'className':"txtSlide",
			'innerHTML':mooz.imgsrc[N%mooz.imgsrc.length].title
		});
		this.N = 10000+N;
	},

	mainloop:function(){
		with(this){
			for(i=0; i<mooz.nbI; i++) {
				O[i].N += (ym-ny)/8000;
				N = O[i].N%nbI;
				ti = Math.pow(mult,N);
				with(O[i].o.style){
					left   = Math.round((W-(ti*rwh))/(W+ti)*(W*.5))+"px";
					top    = Math.round((H-ti)/(H+ti)*(H*.5))+"px";
					zIndex = Math.round(10000-ti*.1);
					width  = Math.round(ti*rwh)+"px";
					height = Math.round(ti)+"px";
				console.log(O[i].o.style);

				}
			}
		}
		setTimeout("mooz.mainloop();", 40);/* 时间 */
	},

	oigres:function(){
		with(this){
			W = parseInt(document.getElementById("screen").style.width);
			H = parseInt(document.getElementById("screen").style.height);
			imgsrc = document.getElementById("images").getElementsByTagName("img");
			rwh = imgsrc[0].width/imgsrc[0].height;
			for(var i=0;i<nbI;i++) O[i] = new Xoom(i);
			mainloop();
		}
	}
}

document.onmousemove = function(e){
	if(window.event) e=window.event;
	ym = (e.y || e.clientY);
	if(ym/2>ny)ny=ym/2;
}

window.onload = function(){
	ym = ny+50;
	mooz.oigres();
}

</script>


	<div style="position:absolute;width:980px;height:355px;background:#fff url(headimages/6.jpg) no-repeat;"></div>
	<div id="screen" style="position:absolute;width:980px;height:355px;overflow:hidden"></div>

<div id="images" style="visibility:hidden">
	<img title="" src="headimages/2.jpg">
    <img title=" " src="headimages/3.jpg">

</div>

</div>
</body>
</html>

